

let extension = {
  components: {//动态扩充组件或组件路径
    //表单header、content、footer对应位置扩充的组件
    gridHeader: '',
    gridBody: '',
    gridFooter: '',
    //弹出框(修改、编辑、查看)header、content、footer对应位置扩充的组件
    modelHeader: '',
    modelBody: '',
    modelFooter: ''
  },
  buttons: [],//扩展的按钮
  methods: {//事件扩展
    onInit () {
      this.rowKey="Role_Id";
      this.columns.forEach(x => {
        if (x.field == 'ParentId') {
          x.title = "上级角色";
        }
      });
      //这些配置不是必须的
      this.editFormOptions.forEach(x => {
        x.forEach(item => {
          if (item.field == 'ParentId') {
            item.title = "上级角色";
            //设置任意节点都能选中(默认只能选中最后一个节点)
            item.changeOnSelect = true;
            item.validator = (rule, val, callback) => {
              if(this.editFormFields.Dept_Id!="RT001"){
                if(val==''){
                  return '非商户类型必须选择上级角色'
                }
              }
              return "";
            }
            //格式化数据显示(只显示当前选中的最后一个节点)，默认会显示所有节点的数据
            // item.formatter = nodeArr => {
            //   if (!nodeArr.length) {
            //     return "";
            //   }
            //   return nodeArr[nodeArr.length - 1];
            // };
          }
          if (item.field == "Dept_Id") {
            item.validator = (rule, val, callback) => {
              if(this.editFormFields.ParentId){
                if(val=="RT001"){
                  return '上级角色不是顶级不能选择商户'
                }
              }
              return "";
            }
          }
        })
      })
      
    },
    loadTreeChildren(tree, treeNode, resolve) { //加载子节点
      let url=`api/Roles/getTreeTableChildrenData?roleId=${tree.Role_Id}`;
      this.http.post(url,{}).then(result=>{
        resolve(result.rows)
      })
    },
    searchBefore(params){//判断加载根节点或子节点
      //没有查询条件，默认查询返回所有根节点数据
      if (!params.wheres.length) {
        params.value=1;
      }
      return true;
    },
    onActivated(){
    },
    onInited () {
    },
    modelOpenAfter() {
      
      //获取当前弹出框是新建还是编辑状态
      let isEDIT = this.currentAction == this.const.EDIT;
      //点击弹出框后，如果是编辑状态，禁止编辑帐号，如果新建状态，将帐号字段设置为可编辑
      this.editFormOptions.forEach(item => {
          item.forEach(x => {
                  //如果是编辑帐号设置为只读
                  if (x.field == "ParentId") {
                      //disabled是editFormOptions的动态属性，这里只能通过this.$set修改值
                      this.$set(x, "disabled", isEDIT)
                  }
                  if (x.field == "DeptName") {
                    //disabled是editFormOptions的动态属性，这里只能通过this.$set修改值
                    this.$set(x, "disabled", isEDIT)
                  }
                  if (x.field == "Dept_Id") {
                  //disabled是editFormOptions的动态属性，这里只能通过this.$set修改值
                  this.$set(x, "disabled", isEDIT)
                  }

              })
          
      })
      var selectOption = this.getFormOption('RoleName');  
        if(!isEDIT) {
            selectOption.onInput = (val) => {    
            this.editFormFields.DeptName=this.base.chineseToPinYin(val);
            }
        } 
        var Code = this.getFormOption('DeptName');
        this.$set(Code, "disabled", isEDIT)
    },
    getFormOption(field) {
      let option;
      this.editFormOptions.forEach(x => {
          x.forEach(item => {
              if (item.field == field) {
                  option = item;
              }
          })
      })
      return option;
      },
    },
};
export default extension;
